package com.lcf.system.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.lcf.framework.annotation.DictTable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 订单(SysOrder)表实体类
 *
 * @author lcf
 * @since 2025-05-02 11:55:03
 */
@Data
@NoArgsConstructor
public class SysOrderVO {
    //id
    @Schema(description = "id")
    private Long id;
    //订单编号
    @Schema(description = "订单编号")
    private String orderNo;
    //店铺id
    @Schema(description = "店铺id")
    @DictTable(tableName = "store", primaryKey = "id", fields = {"name"}, nameField = {"storeName"})
    private Long storeId;
    //店铺名称
    @Schema(description = "店铺名称")
    private String storeName;
    //用户id
    @Schema(description = "用户id")
    private Long userId;
    //订单总价
    @Schema(description = "订单总价")
    private BigDecimal orderPrice;
    //实际总价
    @Schema(description = "实际总价")
    private BigDecimal realPrice;
    //商品状态1待备货2备货中3待取货4已取货
    @Schema(description = "商品状态1待备货2备货中3待取货4已取货")
    private Integer goodsStatus;
    //订单状态1已下单2已取消3已退货
    @Schema(description = "订单状态1已下单2已取消3已退货")
    private Integer orderStatus;
    //物流状态1待取货2配送中3已送达
    @Schema(description = "物流状态1待取货2配送中3已送达")
    private Integer logisticsStatus;
    //付款状态1未付款2已付款
    @Schema(description = "付款状态1未付款2已付款")
    private Integer payStatus;
    //下单时间
    @Schema(description = "下单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime orderTime;
    //订单商品
    @Schema(description = "订单商品")
    private List<OrderGoodsVO> goodsList;
}

